main() {
  // 1. 实例化父类
  Person p1 = Person();
  p1.sayHello();

  // 2. 实例化子类
  Student s1 = Student();
  s1.name = '张三';
  s1.age = 18;
  s1.sayHello();

  // 3. 实例化子类
  Teacher t1 = Teacher();
  t1.name = '李四';
  t1.age = 33;
  t1.subject = 'Flutter';
  t1.saySubject();
  t1.sayHello();

}

// 定一个父类
class Person {
  // 定义属性
  String name = '人类';
  int age = 0;

  // 定义方法
  void sayHello() {
    print('你好，我是$name，我今年$age岁');
  }
}

// 定义子类 - 学生类
class Student extends Person {
  // 定义 id 属性
  int id = 1;

  // 定义方法
  void sayId() {
    print('我是学生，我的学号是$id');
  }

  // 重写父类的方法
  @override
  void sayHello() {
    print('我是学生，我重写了父类的方法，我是$name，我今年$age岁，我的学号是$id');
  }

  void jump() {}
}

// 定义子类 - 老师类
class Teacher extends Person {
  // 定义学科属性
  String subject = '鸿蒙';

  // 定义方法
  void saySubject() {
    print('我是老师，我教的学科是$subject');
  }

  // 重写父类的方法
  @override
  void sayHello() {
    print('我是老师，我重写了父类的方法，我是$name，我今年$age岁，我教的学科是$subject');
  }


}